﻿using System;
using System.Media;
using CSharpHelpers.IOs;

namespace CSharpHelpers.Medias
{
    class MediaHelper
    {
        #region 播放gif相关


        //开始动画方法
        //private void BeginAnimate()
        //{

        //    if (m_img != null)
        //    {

        //        //当gif动画每隔一定时间后，都会变换一帧，那么就会触发一事件，该方法就是将当前image每变换一帧时，都会调用当前这个委托所关联的方法。
        //        ImageAnimator.Animate(m_img, evtHandler);

        //    }

        //}

        ////委托所关联的方法
        //private void OnImageAnimate(Object sender, EventArgs e)
        //{

        //    //该方法中，只是使得当前这个winfor重绘，然后去调用该winform的OnPaint（）方法进行重绘)
        //    this.Invalidate();

        //}

        //重载的当前winform的OnPaint方法，当界面被重绘时去显示当前gif显示某一帧

        //protected override void OnPaint(PaintEventArgs e)
        //{

        //    base.OnPaint(e);

        //    if (m_img != null)
        //    {

        //        //获得当前gif动画下一步要渲染的帧。
        //        UpdateImage();

        //        //将获得的当前gif动画需要渲染的帧显示在界面上的某个位置。
        //        e.Graphics.DrawImage(m_img, new Rectangle(405, 241, m_img.Width, m_img.Height));
        //    }

        //}

        ////获得当前gif动画的下一步需要渲染的帧，当下一步任何对当前gif动画的操作都是对该帧进行操作)
        //private void UpdateImage()
        //{
        //    ImageAnimator.UpdateFrames(m_img);
        //}

        ////关闭显示动画，该方法可以在winform关闭时，或者某个按钮的触发事件中进行调用，以停止渲染当前gif动画。
        //private void StopAnimate()
        //{
        //    m_img = null;
        //    ImageAnimator.StopAnimate(m_img, evtHandler);
        //}

        #endregion

        /// <summary>
        /// 播放音乐
        /// </summary>
        /// <param name="soundIndex"></param>
        public static void SoundPlay(int soundIndex)
        {
            try
            {
                SoundPlayer soundPlayer;
                switch (soundIndex)
                {
                    //case 1:
                    //    soundPlayer = new SoundPlayer(Properties.Resources.button);
                    //    soundPlayer.Play();//.PlaySync();
                    //    break;
                    //case 2:
                    //    soundPlayer = new SoundPlayer(Properties.Resources.number);
                    //    soundPlayer.Play();//.PlaySync();
                    //    break;
                    //case 3:
                    //    soundPlayer = new SoundPlayer(Properties.Resources.camera);
                    //    soundPlayer.Play();//.PlaySync();
                    //    break;
                }
            }
            catch (Exception e)
            {
                SystemLog.Error(e);
            }
        }
    }
}
